/**
 * 学生管理服务类(Model)
 * 功能：提供学生数据的增删改查核心逻辑
 * 使用ArrayList存储学生对象，保证数据独立性
 */

import java.util.ArrayList;
import java.util.List;

public class StudentService {
    // 存储学生对象的ArrayList
    private List<Student> students = new ArrayList<>();

    // 添加学生，如果学生ID已存在则返回false，否则添加成功返回true
    public boolean addStudent(Student student) {
        if (findStudent(student.getId()) != null) {
            return false;
        }
        students.add(student);
        return true;
    }

    // 根据学生ID删除学生，成功删除返回true，未找到学生返回false
    public boolean deleteStudent(String id) {
        Student student = findStudent(id);
        if (student != null) {
            return students.remove(student);
        }
        return false;
    }

    // 根据学生ID更新学生信息，更新成功返回true，未找到学生返回false
    public boolean updateStudent(String id, String newName, int newAge, String newAddress) {
        Student student = findStudent(id);
        if (student != null) {
            student.setName(newName);
            student.setAge(newAge);
            student.setAddress(newAddress);
            return true;
        }
        return false;
    }

    // 根据学生ID查找学生对象，找到返回学生对象，否则返回null
    public Student findStudent(String id) {
        for (Student student : students) {
            if (student.getId().equals(id)) {
                return student;
            }
        }
        return null;
    }

    // 获取所有学生对象的集合
    public List<Student> getAllStudents() {
        return new ArrayList<>(students); // 返回副本以避免外部直接修改内部数据
    }
}